def validate_id(id_input):
    if len(id_input) > 8 or not id_input.isalnum() and '_' not in id_input:
        return False
    return True


def validate_email(email_input):
    parts = email_input.split('@')

    # 检查 '@' 符号存在，并且 '@' 符号前后都有内容
    if len(parts) != 2 or not parts[0] or not parts[1]:
        return False

    # 简单检查域名部分至少包含一个点
    domain_parts = parts[1].split('.')
    if len(domain_parts) < 2:
        return False

    return True


def validate_id_card(id_card_input):
    # 简化版身份证号校验，仅检查长度为18位
    if len(id_card_input) == 18:
        return True
    return False

def validate_name(name_input):
    if len(name_input) <= 4 and all('\u4e00' <= char <= '\u9fff' for char in name_input):
        return True
    return False

def infer_gender_from_id_card(id_card):
    # 简化版性别推断，仅根据第17位奇偶数简单区分男女
    gender_code = int(id_card[-2]) % 2
    return ['未知', '男', '女'][gender_code]

def main():
    id_input = input("请输入ID（不超过8位，可包含数字、字母、下划线）：")
    email_input = input("请输入电子邮件地址：")
    id_card_input = input("请输入身份证号码：")
    name_input = input("请输入姓名（不超过4位中文字符）：")

    error_message = ""
    if not validate_id(id_input):
        error_message += f"ID '{id_input}' 格式不正确\n"
    if not validate_email(email_input):
        error_message += f"电子邮件地址 '{email_input}' 格式不正确\n"
    if not validate_id_card(id_card_input):
        error_message += f"身份证号码 '{id_card_input}' 格式不正确\n"
    if not validate_name(name_input):
        error_message += f"姓名 '{name_input}' 格式不正确\n"

    if error_message:
        print("输入的信息中有非法数据：\n", error_message)
    else:
        gender = infer_gender_from_id_card(id_card_input)
        print(f"用户信息如下：\nID: {id_input}\nEMAIL: {email_input}\n身份证号: {id_card_input}\n姓名: {name_input}\n性别: {gender}")

if __name__ == "__main__":
    main()

